import 'package:casdon/modules/lifeCircle/data/api/life_banner_list_api.dart';
import 'package:casdon/modules/lifeCircle/data/api/life_subject_list_api.dart';
import 'package:casdon/modules/lifeCircle/data/api/life_topic_comment_list_api.dart';
import 'package:casdon/modules/lifeCircle/data/api/life_topic_list_api.dart';
import 'package:casdon/modules/me/data/api/user_center_api.dart';

abstract class LifeRepository {
  // 生活圈banner轮播图，type = 2，
  Future<List<ResponseLifeBannerListApi>?> getlifeBannerList();

  // 生活圈话题， type = 1: 致敬生活家；type = 0: 其他话题板块
  Future<List<ResponseLifeSubjectApi>?> getLifeSubjectList(int type);

  // 生活圈 话题 列表
  Future<ResponseLifeTopicListApi?> getTopicSubjectList(
    String id,
    int pageNum,
    int pageSize,
  );

  // 生活圈 话题 推荐列表
  Future<ResponseLifeTopicListApi?> getTopicRecomendList(
    int pageNum,
    int pageSize,
  );

  // 生活圈 话题 关注列表
  Future<ResponseLifeTopicListApi?> getTopicFlowList(int pageNum, int pageSize);

  // 生活圈 博主帖子 列表
  Future<ResponseLifeTopicListApi?> getBloggerListWith({
    required String userId,
    required int pageNum,
    required int pageSize,
  });

  // 生活圈 我的帖子 列表
  Future<ResponseLifeTopicListApi?> getSelfSubjectList({
    required int pageNum,
    required int pageSize,
  });

  // 生活圈 帖子详情
  Future<LifeTopic?> getTopicDetail({required String topicId});

  // 生活圈 帖子浏览
  Future<void> viewTopic({required String topicId});

  // 生活圈 博主统计信息
  Future<ResponseUserCenterApi?> getBloggerLifeInfo({required String userId});

  // 生活圈 话题搜索
  Future<ResponseLifeTopicListApi?> searchTopicList({
    required String searchText,
    required int pageNum,
    required int pageSize,
  });

  // 生活圈 评论列表
  Future<ResponseLifeTopicCommentListApi?> getTopicComments({
    required String topicId,
    required int pageNum,
    required int pageSize,
  });

   // 生活圈 评论回复列表
  Future<List<Map<String, dynamic>>?> getCommentReply({
    required String commentId,
    required int pageNum,
    required int pageSize,
  });

  // 生活圈 新增评论/回复
  Future<void> addTopicComment({
     required String topicId,  // 帖子id
    required String content, // 评论内容
    String? parentId,  // 被回复的评论的ID，评论帖子时候为 -1
    String? imageSrc,  // 图片，用逗号隔开
    String? toUserId,  // 被评论用户ID
  });

  // 生活圈 删除评论
  Future<void> delComment({required String id});

  // 生活圈 点赞/取消点赞
  Future<void> likeTopic({
    required String id,
    required int type,
    required int flag,
  });

  // 生活圈 举报帖子
  Future<void> reportTopic({
    required String topicId,
    required String reportType,
    String? reportReason,
  });

  // 生活圈 新增帖子
  Future<void> addTopic({
    required int mediaType, // 0 文本，1 图片，2 视频
    required String sid, // 关联话题ID
    required String content, // 内容
    required String mediaSrc, // 资源ID，逗号分隔
  });

  // 生活圈 删除帖子
  Future<void> delTopic({required String id});
}

//
